// 找出数组中满足和大于等于target的长度最小的连续子数组，并返回其长度，如果不存在符合条件的子数组，返回0

// 思路，滑动窗口，双指针，和上题类似
// 时间复杂度：O(n)
// 空间复杂度：O(1)

function minSubArrayLen(target, arr) {
    let ans = Infinity
    let left = 0
    let right = 0
    let sum = 0
    while (right < arr.length) {
        sum += arr[right]
        while (sum >= target) {
            ans = Math.min(ans, right - left + 1)
            sum -= arr[left]
            left++
        }
        right++
    }
    return ans === Infinity ? 0 : ans
}

let nums = [2, 3, 1, 2, 4, 3]
let target = 7
console.log(minSubArrayLen(target, nums));